//导入包

import java.util.Scanner;

public class BaseGrammar {
    public static void main(String[] args) {

        //2.类型转换
        typeTransform();

        //3.输入输出
        inputScanner();

        //4.自增自减
        selfIncrease();

        //5.
//        &逻辑与2 > 1 & 3 > 2 多个条件必须都是 true, 结果才是 true ；有一个是 false ，结果就是 false
//        | 逻辑或2 > 1 | 3 < 5 多个条件中只要有一个是true,结果就是true;
//        !逻辑非!(2 > 1)就是取反：你真我假，你假我真。!true == false、!false == true;
//        ^逻辑异或2 > 1 ^ 3 > 1 前后条件的结果相同，就直接返回false，前后条 件的结果不同，才返回true
//        && 短路与;
//        || 短路或;
    }

    //1.方法重载:一个类多个方法，形参列表不同
    public static void printVariable(String str) {
        System.out.println(str);
    }

    public static void printVariable(int a) {
        System.out.println(a);
    }

    public static void printVariable(int a, String str) {
        System.out.println(a);
        System.out.println(str);
    }

    //2.强制类型转换:小可以转大 | 大转小要不报错要强制类型转换 | 小数转整数，之间保留整数部分 |表达式自动类型转换 小变大再运算，最终结果由最高类型决定 byte,short,char直接转为int运算
    public static void typeTransform() {
        int a = 20;
        byte b = (byte) a;
        System.out.println(b);//20

        int i = 1500;
        byte j = (byte) i;
        System.out.println(j);//-36

    }

    public static void inputScanner() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入整数");
        int a = scanner.nextInt();
        System.out.println(a);
        System.out.println(5 / 2);//整数相除还是整数
    }

    public static void selfIncrease() {
        int a = 20;
        int rsa = a++;
        System.out.println(rsa);//20 ++/--在后面先赋值 再计算变量的值
        System.out.println(a);//21

        //拓展
        int c = 10;
        int d = 5;
        int rs3 = c++ + ++c - --d - ++d + 1 + c--;// 10 +12-4 -5+1 +12
        System.out.println(rs3);//26
        System.out.println(c);//11
        System.out.println(d);//5
    }
}
